// fs模块 file system 文件系统
// fs模块用于与文件系统进行交互（增删改查）

// 加载模块
const fs = require('fs');

// fs.readFile()异步读取文件内容 回调函数
fs.readFile('./hehe.txt',(err,data)=>{
    // 读取文件操作完成后执行该回调函数（可能成功/可能失败）
    // err 读取成功时为null，读取失败时为错误对象
    // data 读取文件成功时的数据，默认为 Buffer 类型的数据
    if (err) {
        console.log( '读取文件失败',err );
    } else {
        console.log( '读取文件成功',data );// <Buffer...>
        console.log( data.toString() );// '只有分离后才能懂的事，却没有了感慨的时间。'
        console.log( data + '' );// '只有分离后才能懂的事，却没有了感慨的时间。'
    }
});
console.log( '其他程序' );


/* // 所有文件相关的操作方法，在异步方法名后面加Sync就是同步的方法
// fs.readFileSync()同步读取文件内容
console.log( '其他程序 1' );
try{
    let data = fs.readFileSync('./hehe1.txt');
    console.log( '读取到的数据',data );
} catch(err){
    console.log( '读取文件失败',err );
}
console.log( '其他程序 2' );
 */


/* // fs.writeFile()异步写入文件内容（会覆盖原来的内容）
// 如果没有haha.txt会自动创建
fs.writeFile('./haha.txt','要写入的数据',(err)=>{
    // err 写入成功时为null，写入失败时为错误对象
    if (err) {
        console.log( '写入失败',err );
    } else {
        console.log( '写入成功' );
    }
}); */

/* // fs.appendFile()异步写入文件内容（在原来的内容追加新内容）
// 如果没有haha.txt会自动创建
fs.appendFile('./haha.txt','123456789',(err)=>{
    // err 写入成功时为null，写入失败时为错误对象
    if (err) {
        console.log( '写入失败',err );
    } else {
        console.log( '写入成功' );
    }
}) */

/* // fs.unlink()异步删除文件
fs.unlink('./haha.txt',(err)=>{
    // err 删除成功时为null，删除失败时为错误对象
    if (err) {
        console.log( '删除失败',err );
    } else {
        console.log( '删除成功' );
    }
}) */


// fs.readdir()异步读取文件夹
// fs.readdir('./',(err,data)=>{
//     if (err) {
//         console.log( '读取失败',err );
//     } else {
//         console.log( '读取成功',data );
//         // data = [
//         //     '01-内容回顾.html',
//         //     '02-nodejs中的模块.js',
//         //     '03-http模块.js',
//         //     '04-自动重启服务.js',
//         //     '05-url模块.js',
//         //     '06-全局变量.js',
//         //     '07-fs模块.js',
//         //     'day12_尚硅谷_nodejs内置模块.md',
//         //     'hehe.txt'
//         // ]
//     }
// })
